<!DOCTYPE html>












  


<html class="theme-next gemini use-motion" lang="Chinese">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2"/>
<meta name="theme-color" content="#222">












<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />






















<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=6.4.0" rel="stylesheet" type="text/css" />


  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=6.4.0">


  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=6.4.0">


  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=6.4.0">


  <link rel="mask-icon" href="/images/logo.svg?v=6.4.0" color="#222">









<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Gemini',
    version: '6.4.0',
    sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
    fancybox: false,
    fastclick: false,
    lazyload: false,
    tabs: true,
    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>


  




  <meta property="og:type" content="website">
<meta property="og:title" content="政子的博客">
<meta property="og:url" content="http://blog.zhengzi.me/page/6/index.html">
<meta property="og:site_name" content="政子的博客">
<meta property="og:locale" content="Chinese">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="政子的博客">






  <link rel="canonical" href="http://blog.zhengzi.me/page/6/"/>



<script type="text/javascript" id="page.configurations">
  CONFIG.page = {
    sidebar: "",
  };
</script>

  <title>政子的博客</title>
  









  <noscript>
  <style type="text/css">
    .use-motion .motion-element,
    .use-motion .brand,
    .use-motion .menu-item,
    .sidebar-inner,
    .use-motion .post-block,
    .use-motion .pagination,
    .use-motion .comments,
    .use-motion .post-header,
    .use-motion .post-body,
    .use-motion .collection-title { opacity: initial; }

    .use-motion .logo,
    .use-motion .site-title,
    .use-motion .site-subtitle {
      opacity: initial;
      top: initial;
    }

    .use-motion {
      .logo-line-before i { left: initial; }
      .logo-line-after i { right: initial; }
    }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="Chinese">

  
  
    
  

  <div class="container sidebar-position-left 
  page-home">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/" class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">政子的博客</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
    
      
        <p class="site-subtitle">强迫症|学习者|伪文青</p>
      
    
  </div>

  <div class="site-nav-toggle">
    <button aria-label="Toggle navigation bar">
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>



<nav class="site-nav">
  
    <ul id="menu" class="menu">
      
        
        
        
          
          <li class="menu-item menu-item-home">
    <a href="/" rel="section">
      <i class="menu-item-icon fa fa-fw fa-home"></i> <br />Home</a>
  </li>
        
        
        
          
          <li class="menu-item menu-item-about">
    <a href="/about/" rel="section">
      <i class="menu-item-icon fa fa-fw fa-user"></i> <br />About</a>
  </li>
        
        
        
          
          <li class="menu-item menu-item-tags">
    <a href="/tags/" rel="section">
      <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />Tags</a>
  </li>
        
        
        
          
          <li class="menu-item menu-item-archives">
    <a href="/archives/" rel="section">
      <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />Archives</a>
  </li>

      
      
    </ul>
  

  

  
</nav>



  



</div>
    </header>

    


    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          
            

          
          <div id="content" class="content">
            
  <section id="posts" class="posts-expand">
    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/05/04/21-e5-b2-81-e7-9a-84-e4-bd-a0-e5-9c-a8-e8-bf-87-e6-80-8e-e6-a0-b7-e7-9a-84-e7-94-9f-e6-b4-bb-e6-9d-a5-e8-87-aa-e7-9f-a5-e4-b9-8e/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/05/04/21-e5-b2-81-e7-9a-84-e4-bd-a0-e5-9c-a8-e8-bf-87-e6-80-8e-e6-a0-b7-e7-9a-84-e7-94-9f-e6-b4-bb-e6-9d-a5-e8-87-aa-e7-9f-a5-e4-b9-8e/" itemprop="url">
                  21岁的你在过怎样的生活|来自知乎
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-05-04 01:24:24" itemprop="dateCreated datePublished" datetime="2016-05-04T01:24:24+08:00">2016-05-04</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/来自知乎/" itemprop="url" rel="index"><span itemprop="name">来自知乎</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>作者：政子 链接：<a href="https://www.zhihu.com/question/34782710/answer/61497364" target="_blank" rel="noopener">https://www.zhihu.com/question/34782710/answer/61497364</a> 来源：知乎 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。</p>
<p>留名，21岁时候再来回答。 —————- 2016/5/3晚更 笔者现在21.041岁，前来作答。 终于在21岁等到了Vae的新歌，听说明天MV也会发布，想想还有些小激动呢。 从前只觉的日子过得太快，什么都没做时间就匆匆地走掉，再也不回头。到了现在，我已经学会了如何去做一些能让时间变慢的事情——一些自己认为有意义，同往常不一样，可以回忆起的事儿。</p>
<p>之前和建峰谈起，提到五月天的一首《有些事现在不做一辈子都不会做了》，就忆起这是我高中时的每日必听，没有这首歌，我可能坚持不到现在。所以，所谓的有些事，就是我认为有意义的，与平日所为不同的事情吧。 现在为人为事较之从前更随心了许多，少了目的性，遇事去做多见有趣，这个转变是我未曾预料到的，生活是有趣了许多。 距离自己上次回答19岁生活的问题只是过去了一年多一点，年纪却长了两岁，也是有趣。之前深爱的心理和哲学几乎都被我弄丢了。每天只剩下可怜的很少时间去思考，收获却不比之前少。减肥有了一些初步效果，虽然我自己还没啥感觉。关于脸红的事儿呢，嗯，听我讲话的人越多，我就越不会脸红。依旧单身，但是比那时候心平气和了许多，毕竟好不容易接受了这种状态，也好。 手下的活儿呢，是基本放下电烙铁，再也离不开键盘了。代码比之前多写了不少，水平没啥长进，但收获了几位好朋友，好队友，我满足了。 还有，我选择了考研，因为各种原因，主要也是随心。也提前去了实验室，气氛还好，希望我能考上。 求之不得，求之既得，唯心而已。 不多希望什么，不多奢求什么，过好每一天。</p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/04/29/e6-90-ad-e5-bb-ba-e5-9f-ba-e4-ba-8egit-e7-9a-84-e5-9b-a2-e9-98-9f-e6-b5-8b-e8-af-95-e6-9c-8d-e5-8a-a1-e5-99-a8/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/04/29/e6-90-ad-e5-bb-ba-e5-9f-ba-e4-ba-8egit-e7-9a-84-e5-9b-a2-e9-98-9f-e6-b5-8b-e8-af-95-e6-9c-8d-e5-8a-a1-e5-99-a8/" itemprop="url">
                  搭建基于Git的小型团队测试服务器
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-04-29 00:40:23" itemprop="dateCreated datePublished" datetime="2016-04-29T00:40:23+08:00">2016-04-29</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/git/" itemprop="url" rel="index"><span itemprop="name">git</span></a></span>

                
                
                  , 
                
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/git/Linux/" itemprop="url" rel="index"><span itemprop="name">Linux</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="写在前面"><a href="#写在前面" class="headerlink" title="写在前面"></a>写在前面</h2><p>最近在团队开发中遇到很多麻烦的问题，多人协作很不方便，所以就想搭建一个基于Git的小型团队协作（也就是很多东西需要手动配置）服务器，完成一些小型的开发测试工作。 关于Git的基本操作推荐廖雪峰的Git教程：<a href="http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000" target="_blank" rel="noopener">http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000</a></p>
<h2 id="安装配置Git"><a href="#安装配置Git" class="headerlink" title="安装配置Git"></a>安装配置Git</h2><p>安装Git软件</p>
<p>yum install git</p>
<p>添加一个git账户，用于使用ssh方式远程连接git服务</p>
<p>useradd git<br>passwd git（给git账户设置密码）</p>
<p>禁用git账户登录shell</p>
<p>编辑账户配置文件<br>vim /etc/passwd<br>找到这一行<br>git:x:1001:1001:,,,:/home/git:/bin/bash<br>改为<br>git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell</p>
<p>设置以后，git用户可以正常通过ssh使用git，但无法登录shell，因为已经为git用户指定了git-shell，该shell每次一登录就自动退出 配置一下git的默认账户和邮箱</p>
<p>git config –global user.name “Jason”<br>git config –global user.email “<a href="mailto:jason@zhengzi.me" target="_blank" rel="noopener">jason@zhengzi.me</a>“</p>
<h2 id="建立Git总仓库"><a href="#建立Git总仓库" class="headerlink" title="建立Git总仓库"></a>建立Git总仓库</h2><p>初始化Git仓库，在这里选择在/srv/dev/main.git目录下操作</p>
<p>mkdir /srv/dev<br>cd /srv/dev<br>git init –bare main.git</p>
<p>在这里要说明两点：</p>
<ul>
<li>git仓库的目录名一般习惯上使用.git结尾</li>
<li>使用–bare参数初始化仓库是初始化咯仓库的意思因为我们在main目录下只是为了建立一个历史纪录的库，而不需要实际中该项目文件的拷贝，所以这个目录不是所谓的工作目录，只是所谓的工作目录下.git文件夹中的内容，具体可以google一下git init  和 git init –bare 的区别</li>
</ul>
<p>把仓库owner改为git账户</p>
<p>chown git:git main.git</p>
<p>现在Git的总仓库已经建立完成了！接下来，为每个小伙伴建立仓库</p>
<h2 id="配置SSH"><a href="#配置SSH" class="headerlink" title="配置SSH"></a>配置SSH</h2><p>首先说一下，这次我想使用SSH方法登录认证git，所以根据SSH的思路，可以使用SSH Key或者用户密码来认证。 因为SSH Key还需要收集大家的公钥，用起来比较麻烦，所以我选择直接使用账户密码认证（其是不推荐这样，容易受到中间人攻击）。 如果服务器没有配置使用用户名密码进行SSH需要这样设置</p>
<p>编辑/etc/ssh/sshd_config<br>找到</p>
<p>#PasswordAuthentication no<br>改为<br>PasswordAuthentication yes</p>
<p>关于密钥加密的配置方法可以参考 <a href="http://blog.csdn.net/wave_1102/article/details/47779401" target="_blank" rel="noopener">http://blog.csdn.net/wave_1102/article/details/47779401</a></p>
<h2 id="为每个小伙伴创建自己的仓库"><a href="#为每个小伙伴创建自己的仓库" class="headerlink" title="为每个小伙伴创建自己的仓库"></a>为每个小伙伴创建自己的仓库</h2><p>首先建立一个dev用户组，所有的小伙伴都归入这个组中</p>
<p>groupadd dev</p>
<p>在这里以一个叫learn而的用户为例 （之后如果有其他用户加入，添加方法和下面相同）</p>
<p>useradd -d /usr/learn -m learn -g dev<br>passwd learn(为你的小伙伴设置初始密码)</p>
<p>为什么为learn用户分配了一个/usr目录下的主文件夹呢，因为他很可能还要在服务器上写一些其他的脚本什么的，留个主目录方便。 在/srv/dev/learn clone一个用户仓库</p>
<p>mkdir learn<br>cd learn<br>git clone git@localhost:/srv/dev/main.git /srv/dev/learn<br>或者<br>git clone git@(你的服务器IP):/srv/dev/main.git /srv/dev/learn<br>(会提示输入之前设置的git用户的密码)</p>
<p>然后将learn目录的所有权变为learn账户</p>
<p>chown dev:learn /srv/dev/learn</p>
<p>现在，就可以把代码拷贝到learn目录然后做first commit了！ 比如把代码拷贝过来之后</p>
<p>cd /srv/dev/learn<br>git add *<br>git commit -m “this is the first commit”</p>
<p>当然，现在只是把代码提交到这个叫learn的小伙伴的git仓库中，他可以随时提交更改回退，当然要想提交到主仓库，可以这样操作</p>
<p>git push -u origin master</p>
<p>PS：第一次提交要使用-u，之后就不用使用了 现在，就已经可以做到让小伙伴们登陆远程开发服务器进行开发，每个人都拥有自己的版本库并且可以提交到中心版本库中 关于Git的详细使用方法，可以参考文初推荐的教程 最后说一下，如果有人想在本地也clone一个代码库的话，可以clone一个自己的代码库到本地，每次更改后提交到自己的代码库中，如果需要合并到主版本库，用自己的账户登录到服务器提交即可。</p>
<h2 id="配置服务器"><a href="#配置服务器" class="headerlink" title="配置服务器"></a>配置服务器</h2><p>我们团队需要建立的是PHP+Apache+MySQL测试环境，所以最后还需要配置一下Apache（如果是别的平台可自行配置，也可留言讨论） 打开Apache配置文件</p>
<p>vim /etc/httpd/conf/httpd.conf</p>
<p>假设在88端口使用虚拟主机进行配置，添加一下代码到配置文件中</p>
<p>Listen 88</p>
<virtualhost *:88=""><br>        DocumentRoot “/srv/dev”<br>        <directory "="" srv="" dev"=""><br>            Options Indexes FollowSymLinks<br>            # Allow open access:<br>            Require all granted<br>        </directory><br></virtualhost>

<p>最后重启Apache</p>
<p>systemctl restart httpd.service</p>
<p>好了！一切完工，现在每个小伙伴都可以有一个自己的测试URL了，还是以learn用户为例</p>
<p>http://测试服务器IP或域名:88/learn</p>
<h2 id="一切完工"><a href="#一切完工" class="headerlink" title="一切完工"></a>一切完工</h2><p>一切完成！可以让小伙伴们告诉你他想要的账户然后按照“为每个小伙伴创建自己的仓库”一节所说的，帮他们创建自己的测试仓库了。 最后说一下，关于SSH公钥管理还有一个软件叫做<a href="https://github.com/sitaramc/gitolite" target="_blank" rel="noopener">Gitosis</a>。不过小团队也没有必要使用，大的团队需要使用的话可以自行研究。</p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/04/25/e6-9c-89-e4-ba-9b-e4-ba-8b-e7-8e-b0-e5-9c-a8-e4-b8-8d-e5-81-9a-e4-b8-80-e8-be-88-e5-ad-90-e9-83-bd-e4-b8-8d-e4-bc-9a-e5-81-9a-e4-ba-86/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/04/25/e6-9c-89-e4-ba-9b-e4-ba-8b-e7-8e-b0-e5-9c-a8-e4-b8-8d-e5-81-9a-e4-b8-80-e8-be-88-e5-ad-90-e9-83-bd-e4-b8-8d-e4-bc-9a-e5-81-9a-e4-ba-86/" itemprop="url">
                  有些事现在不做一辈子都不会做了
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-04-25 01:39:57" itemprop="dateCreated datePublished" datetime="2016-04-25T01:39:57+08:00">2016-04-25</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/随笔/" itemprop="url" rel="index"><span itemprop="name">随笔</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>胡语曰：仲春美哉，何不以睡代醒，一睡方休？ 入四月，无琴瑟，是有与日的燥热同与日不安的内心。心起了波澜，头脑昏了下去，也便再写不出文章。 流月之城渺渺然，吾思之将至，却永不得焉。 正些许失意，至今日，与一友畅谈，如见春风，拂得心安；又同一友通话，如遇朗月，沐得心宁。</p>
<h2 id="从一部电影开始"><a href="#从一部电影开始" class="headerlink" title="从一部电影开始"></a>从一部电影开始</h2><p>学期初看了《三傻大闹宝莱坞》，兰彻让我认清了自己需要做的事情。 “Follow Excellence. Success will chase you.” 不要刻意追求，少些目的性，努力去做到最好。事终如何，我不想知道答案，但我知道答案不会让我失望。 在长跑的时候，我得到了最真实的感觉。 不能总想着要跑的比别人快超过别人，这样子过一阵体力匮乏，肯定会吃不消。 换一种思路：跑得比我慢的人都会被我超过，不用着急赶超；跑的比我快的人耐力都不如我，也不必着急赶超。到了最后，操场上果然只剩下稀稀拉拉几人，只有我还在继续奔跑。 三月份一个月的时间和激情，献给了我的团队DebugTeam和我们的作品——StarrySky。事后，第一次想通了在一年前参加建模比赛时那种团队里所有成员都不自觉渴望付出努力做事的感觉究竟为何而生。 在一个好的团队中，每一个人都不一定是最优秀的（但需要有独当一面的实力），大家在一起为了共同的目标努力，用尽办法，互相协助，没有抱怨，更无人言弃。每个人不只是自己，只是一个坚不可摧的团队中的一员。当团队中所有人都在努力的时候，所有人中一定是包含你自己。 这种奇妙的感觉，又一次在这种团队气氛中产生，最不可缺少的就是共同的目标和实现这个目标的决心。 另一边，另外一个项目却像是给老师完成任务，虽努力完善，但却找不到激情，更没有思想，就像一只机械手，一行行敲出早已是套路的代码。</p>
<h2 id="黑客与画家"><a href="#黑客与画家" class="headerlink" title="黑客与画家"></a>黑客与画家</h2><p>前段时间一直在读Paul Graham的这本书，受益匪浅。 以前一直在听说“程序=算法+数据结构”，和语言本身无甚关系。但是我不服啊，为啥就说“PHP是世界上最好的语言”，却还是有无数人鄙视我们这些用PHP的人。 答案很简单，不同语言的特性不同，完成一件事情的快慢也自然不同，选择最合适的语言去做最合适的事情就是最优。 许多认为PHP是老掉牙的东西，根本比不上所谓现代先进的语言的人，我也只能回以礼貌一笑，心中拜托他们是不是可以先稍微回去看两眼PHP再来废话。 不同的语言只是为了最快最好（也就是最优）完成一件事情，而不是为了让程序员之间起这种可笑的纷争。 Paul认为Lisp非常好，前几天和一鸣师兄请教了一些之后，心中豁然开朗，明白了Lisp的强大不是因为这门语言，而是因为其背后的设计思想。 这里可以先放他的<a href="http://www.cnblogs.com/buptzym/p/3256146.html" target="_blank" rel="noopener">一篇与此有关的文章——《别语言之争了，最牛逼的语言不是.NET，也不是JAVA!》。</a>（作为他的最新文章《计算的本质》的首批读者，我认为这是一篇非常有启发性的文章，很值得一读，所以也想在这里先占个空。） 我更喜欢把代码放在一边，当作手头的一个武器，但并不是我的全部。所以我可能不会是一个完全意义上的程序员。 我想让手头的武器变强，也更想让使用武器的自己变得更强（这里应该不能用“强”这个字，我想说多方面发展）。一个画家拿着武器战场杀敌，有何不可？ 所以我有义务让自己变得清醒，看清楚每天起来所见的世界，想清楚自己今后要走的路。清楚之后，走得要同“大叔”那般坚定。</p>
<h2 id="人月神话"><a href="#人月神话" class="headerlink" title="人月神话"></a>人月神话</h2><p>在一个水平很差，没有想法的团队中，我会变得不知所措，异常痛苦，十分后悔，想要逃开。这是上学期快要放假时候最真实的感触。 虽然当时后悔，但事后想想，这几天后悔得值，这让我深刻记住了当时痛苦的感受，今后再也不要进入这样的团队之中（我也不能成为那样水平很差被人嫌弃的人）。 在StarrySky之后，DebugTeam又决定去参加HackPKU，同时也来了一位新的小伙伴，成员从4个人变成了5个人。 在HackPKU上我们虽然顺利完成了我们的作品——VLine（也是和之前的做过的一个项目名字很像呢），但是我明显地感觉到大家因为新同学的加入（虽然我们之前就很熟悉）沟通成本陡增，分工也出现了问题（可能是因为没有使用框架），好在项目不复杂，还是凭借我们的机智成功做了出来。 至此，我又体会到好的团队一定是建立在沟通顺畅，分工明确的基础上。我对那次“建模事件”的理解更深了一步。</p>
<h2 id="有些事现在不做一辈子都不会做了"><a href="#有些事现在不做一辈子都不会做了" class="headerlink" title="有些事现在不做一辈子都不会做了"></a>有些事现在不做一辈子都不会做了</h2><p>我相信很多事物运行都遵行幂律（听起来有些玄学因为我暂时不能解释为何，只是模糊感觉一切都是一张网络），水平越在前面的人越可以得到他想要的东西。 所以让自己排在前面的最好办法就是让自己成为一个独特的人。越是和别人不同，那么竞争就越少，稀缺性的好处就越可以体现出来，（过犹不及，讲求中庸）也就越容易到达幂律的临界点。 最好是去做一个靠谱的事情。靠谱不一定要所有人都觉得它可以，只是因为有些事情现在不做一辈子都不会做了。 人生漫漫，做事情选择的机会却不多，如果不去做这些认为不做将来可能后悔的事情，将来一定是会后悔的。 最好要做的事情，我认为就是在合适的时间同合适的人去做的合适的事情，顺势而为，而不是改天逆命。 子曰：“吾十有五而志于学，三十而立，四十而不惑，五十而知天命，六十而耳顺，七十而从心所欲不逾矩。” 是想，孔子七十才做到随心所欲不逾矩，可见此时是要经历几多沧桑才能到达的境界。这也是我的目标。 我当下所想的随心所欲也可以理解为随性而为。 随性而为，去做认为有意思的事情，把事情变得更有意思。有意思不是指好玩，而是想去关心关注的事情。我认为，这样才算内心上对一件事情的认同，人和事才算是相伴而成功。此般随性，唯有到达某境界，才可做到罢。</p>
<h2 id="如烟"><a href="#如烟" class="headerlink" title="如烟"></a>如烟</h2><blockquote>
<p>我坐在床前/望着窗外回忆满天/生命是华丽错觉/时间是贼偷走一切 七岁的那一年/抓住那只蝉/以为能抓住夏天/十七岁的那年/吻过他的脸 就以为和他能永远/有没有那么一种永远/永远不改变/ 拥抱过的美丽/都再也不破碎/ 让险峻岁月不能在脸上撒野/让生离和死别都遥远 有谁能听见/我坐在床前 转过头看谁在沉睡/ 那一张苍老的脸/好像是我紧闭双眼 曾经是爱我的/和我深爱的 都围绕在我身边/带不走的那些/遗憾和眷恋 就化成最后一滴泪/有没有那么一滴眼泪/能洗掉后悔 化成大雨降落在/回不去的街/再给我一次机会 将故事改写/还欠了他一生的一句抱歉/有没有那么一个世界/永远不天黑 星星太阳万物都听我的指挥/月亮不忙着圆缺/春天不走远 树梢紧紧拥抱着树叶/有谁能听见/耳际眼前此生重演 是我来自漆黑/而又回归漆黑/人间瞬间天地之间/下次我又是谁 有没有那么一朵玫瑰/永远不凋谢/永远骄傲和完美/永远不妥协 为何人生最后会像/一张纸屑/还不如一片花瓣/曾经鲜艳 有没有那么一张书签/停止那一天/最单纯的笑脸和 最美那一年/书包里面装满了/蛋糕和汽水 双眼只有无猜和无邪/让我们无法无天/有没有那么一首诗篇/找不到句点 青春永远定居在/我们的岁月/男孩和女孩都有/吉他和舞鞋/笑忘人间的苦痛/只有甜美 有没有那么一个明天/重头活一遍/让我再次感受/曾挥霍的昨天/无论生存或生活/我都不浪费 不让故事这么的后悔/有谁能听见/我不要告别/我坐在床前/看着指尖已经如烟</p>
</blockquote>
<p>此时，心中尽是《如烟》。 希望在生命最后的时刻，想到此处，诘问自己：“心中可否有遗憾，心中可否曾后悔？”的时候，可以给自己一个满意的答复，再安然离去。</p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/04/13/e5-bc-b9-e5-b9-95-e4-ba-91-e5-8e-9f-e6-9d-a5-e5-bc-b9-e5-b9-95-e5-8f-af-e4-bb-a5-e8-bf-99-e6-a0-b7-e7-8e-a9/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/04/13/e5-bc-b9-e5-b9-95-e4-ba-91-e5-8e-9f-e6-9d-a5-e5-bc-b9-e5-b9-95-e5-8f-af-e4-bb-a5-e8-bf-99-e6-a0-b7-e7-8e-a9/" itemprop="url">
                  弹幕派——原来弹幕可以这样玩
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-04-13 19:06:05" itemprop="dateCreated datePublished" datetime="2016-04-13T19:06:05+08:00">2016-04-13</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/PHP/" itemprop="url" rel="index"><span itemprop="name">PHP</span></a></span>

                
                
                  , 
                
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/PHP/应用/" itemprop="url" rel="index"><span itemprop="name">应用</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="经历"><a href="#经历" class="headerlink" title="经历"></a>经历</h2><p>经历了半年多利用业余时间走走停停的开发，这个弹幕项目终于从一个花瓶的展示状态到了一个基本可用的地步。 记的最初有这个想法是在微软Hackathon上，本来想做一个Office的时间天气地点人物的增强插件，但是后面不知怎么的就想到了去做个PPT弹幕玩玩，和志龙商量了一下，决定就去做这个。今天回忆起来，可能是惠东去年夏天时候给我打的一个电话问我PPT怎么加弹幕时候就有的灵感了。后来得到MSRA的支持，就一直走了过来。</p>
<h2 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h2><p>使用方法个人感觉还是比较简单。 进入<a href="http://danmu.zhengzi.me" target="_blank" rel="noopener">弹幕派后台管理网站</a>先输入账户密码，点击注册，注册成功后点击登录，然后创建房间，就进入房间管理页面，可以看到房间和用户发送弹幕的的一些信息，最关键的是记住房间ID。 然后再网站下方点击<a href="http://7xr64j.com1.z0.glb.clouddn.com//danmu/release/Danmu%20v1.1.1.zip" target="_blank" rel="noopener">下载桌面端</a>，运行里面的DanMu.exe，如果没有问题（也就是你安装了.NetFrameWork 4.0以上版本）的话，就打开了我们的应用，输入刚刚申请的用户名和密码，就可以进入应用，应用会自动运行，会自动接收到发来的弹幕。你可以在任务栏托盘中看见任务图标，点击右键可以进行设置、暂停等操作。 如果要发送弹幕的话，扫描左侧的微信二维码，关注我们的官方微信，然后回复“弹幕”二字，输入房间号，就可以发送弹幕了，想换房间需要先退出。 如果你想用自己的微信号接入的话，需要在管理页面的最下方点击绑定公众号，输入您的公众号ID（AppID）、公众号名称、公众号令牌（Token）和加解密密钥（EncodingAESKey）之后（这些都可以在公众号后台开发选 项卡中的基本配置选项找到），然后可以在页面看到到您的URL，之后进入公众号管理后台（<a href="http://mp.weixin.qq.com" target="_blank" rel="noopener">mp.weixin.qq.com</a>）开发选项卡中的基本配置选项，将URL服务器地址修改为页面给您的地址即可。</p>
<h2 id="意见或反馈"><a href="#意见或反馈" class="headerlink" title="意见或反馈"></a>意见或反馈</h2><p>在下方留言回复或者发送邮件到imaginezz#outlook.com 或 thesharing#163.com（将#替换为@即可）我们团队都会第一时间反馈。</p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/04/06/centos7apache-e9-85-8d-e7-bd-aephp7/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/04/06/centos7apache-e9-85-8d-e7-bd-aephp7/" itemprop="url">
                  CentOS7+Apache配置PHP7
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-04-06 06:19:13" itemprop="dateCreated datePublished" datetime="2016-04-06T06:19:13+08:00">2016-04-06</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/PHP/" itemprop="url" rel="index"><span itemprop="name">PHP</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="下载和准备工作"><a href="#下载和准备工作" class="headerlink" title="下载和准备工作"></a>下载和准备工作</h2><p>在PHP官网找到PHP7.0.5的下载地址，并且使用wget下载</p>
<p>wget <a href="http://cn2.php.net/get/php-7.0.5.tar.gz/from/this/mirror" target="_blank" rel="noopener">http://cn2.php.net/get/php-7.0.5.tar.gz/from/this/mirror</a></p>
<p>下载之后解压</p>
<p>tar -vzxf mirror</p>
<p>安装之前，确定一些PHP的依赖包已经安装，如果没有，可以一并安装</p>
<p> yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel php-mcrypt libmcrypt libmcrypt-devel</p>
<p>如果没法安装一些库的话，可以先为centos配置rpmforge及epel源，具体方法可以搜索一下。</p>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><p>进入解压之后的文件夹，进行配置，并输入配置参数</p>
<p>./configure –prefix=/usr/local/php7 \<br>–with-config-file-path=/usr/local/php7/etc \<br>–with-mcrypt=/usr/include \<br>–with-mysqli=mysqlnd \<br>–with-pdo-mysql=mysqlnd \<br>–with-gd \<br>–with-iconv \<br>–with-zlib \<br>–enable-xml \<br>–enable-bcmath \<br>–enable-shmop \<br>–enable-sysvsem \<br>–enable-inline-optimization \<br>–enable-mbregex \<br>–enable-fpm \<br>–enable-mbstring \<br>–enable-ftp \<br>–enable-gd-native-ttf \<br>–with-openssl \<br>–enable-pcntl \<br>–enable-sockets \<br>–with-xmlrpc \<br>–enable-zip \<br>–enable-soap \<br>–without-pear \<br>–with-gettext \<br>–enable-session \<br>–with-curl \<br>–with-jpeg-dir \<br>–with-freetype-dir \<br>–enable-opcache</p>
<p>然后编译安装</p>
<p>make &amp;&amp;  make install</p>
<h2 id="配置PHP7"><a href="#配置PHP7" class="headerlink" title="配置PHP7"></a>配置PHP7</h2><p>复制一些配置文件</p>
<p>cp php.ini-production /usr/local/php7/etc/php.ini<br>cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm<br>chmod +x /etc/init.d/php7-fpm<br>cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf<br>cp /usr/local/php7/etc/php-fpm.d/<a href="http://www.conf.default" target="_blank" rel="noopener">www.conf.default</a> /usr/local/php7/etc/php-fpm.d/<a href="http://www.conf" target="_blank" rel="noopener">www.conf</a></p>
<p>启动php-fpm</p>
<p>/etc/init.d/php7-fpm start</p>
<p>再启动php-fpm之后，如果出现问题，可以修改配置文件</p>
<p>vim /usr/local/php7/etc/php-fpm.d/<a href="http://www.conf" target="_blank" rel="noopener">www.conf</a></p>
<p>把监听的端口改变一下 然后可以查看php版本</p>
<p>/usr/local/php7/bin/php -v</p>
<p>可以看到，已经是PHP7了 安装方法可以参考：<a href="http://www.tuicool.com/articles/BR7Bza" target="_blank" rel="noopener">http://www.tuicool.com/articles/BR7Bza</a></p>
<h2 id="配置Apache"><a href="#配置Apache" class="headerlink" title="配置Apache"></a>配置Apache</h2><p>这里，使用php-fpm和fast-cgi进行配合，抛弃之前的php_moudel。</p>
<p>使用Apache2.4可以支持的最简单的ProxyPass方法，在Apache配置文件中的 之后加入</p>
<locationmatch ^(.*\\.php)$=""><br>    ProxyPass fcgi://127.0.0.1:9000/path/to/webroot/<br>    ProxyErrorOverride on<br></locationmatch>

<p>重启Apache，完成！ 具体配置方法可以参考：<a href="https://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/" target="_blank" rel="noopener">https://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/</a></p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/03/26/uwp-e5-ad-a6-e4-b9-a0-e6-9c-ad-e8-ae-b0-e6-b5-85-e6-9e-90unity-e5-b7-a5-e7-a8-8b/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/03/26/uwp-e5-ad-a6-e4-b9-a0-e6-9c-ad-e8-ae-b0-e6-b5-85-e6-9e-90unity-e5-b7-a5-e7-a8-8b/" itemprop="url">
                  UWP学习札记——浅析Unity工程
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-03-26 02:26:50" itemprop="dateCreated datePublished" datetime="2016-03-26T02:26:50+08:00">2016-03-26</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/Unity/" itemprop="url" rel="index"><span itemprop="name">Unity</span></a></span>

                
                
                  , 
                
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/Unity/UWP/" itemprop="url" rel="index"><span itemprop="name">UWP</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="起因"><a href="#起因" class="headerlink" title="起因"></a>起因</h2><p>最近在做项目时候遇到了一个问题——将Unity开发的游戏合并进入一个C#写的UWP工程。既然Unity可以将游戏导出成为UWP工程，那么理论上来说，将这个工程合并进入原来的C#项目也是完全可能的。</p>
<h2 id="Unity工程导出为C-项目（UWP）"><a href="#Unity工程导出为C-项目（UWP）" class="headerlink" title="Unity工程导出为C#项目（UWP）"></a>Unity工程导出为C#项目（UWP）</h2><p>首先<a href="http://unity3d.com/cn/get-unity/download/archive" target="_blank" rel="noopener">下载最新的Unity编辑器</a>（至少也要是5.2版本以上），才可以支持导出为UWP项目。注意在使用安装器安装的时候就要选择Windows10的build的组件。 注意：因为之前Win10也经历过一次更新，版本号已经从10240到了10586，所以SDK也发生了变化，之前的一些Unity版本可能会导致一些兼容性的问题，但可以通过更改工程支持的系统版本来修复这个问题，具体可以参考：<a href="https://blogs.msdn.microsoft.com/windows__windows_game_dev_faq_/2015/08/19/unity-windows10/" target="_blank" rel="noopener">Unity 游戏移植到 Windows10 之路 — 环境搭建</a> 。 注意：安装完最新版本的Unity之后，打开项目可能需要进行版本转换，一般转换是不会出问题的。 打开工程后，点击File菜单，选择Build Settings选项，在Scene In Build里选择需要参与生成的场景。 接下来，在Platform中选择Windows Store，点击Switch Platform。接着在右侧的SDK中选择 Universal 10，Build Type选择XAML。对于Unity C# Project，如果选择，则会在等下生成的解决方案中多两个未编译的工程，一个是Unity的Script文件的Assembly-UnityScript工程，一个是Unity的Assembly-CSharp的工程，这两个工程之后由VS进行编译，主工程会依赖这两个工程的类库。如果不勾选的化，则会直接编译生成这两个类库，不必使用VS对其进行编译。 这里假设没有勾选Unity C# Project，在设置完成之后，选择Build，选定目标文件夹，经过一系列编译之后，就在选定的文件夹中形成了一个C#的解决方案。这时候，就可以关闭Unity，使用VS来打开那个解决方案了。</p>
<h2 id="Unity导出解决方案的内容"><a href="#Unity导出解决方案的内容" class="headerlink" title="Unity导出解决方案的内容"></a>Unity导出解决方案的内容</h2><p>打开解决方案，进入工程内部，可以看出，和一般的UWP应用非常类似。 首先可以看见App.Xaml和ManPage.Xaml，这两个Xaml的作用和普通UWP应用完全一样，App.Xaml用来作为启动UWP时的引导，MainPage.Xaml作为引导成功后跳转到的页面。Assets文件夹用来存放文件夹用于存放项目资产，也和普通应用一样，存放App的图标，多出来的是Data文件夹和Unprocessed文件夹，这两个文件夹是做什么的呢？ Data文件夹里面会存放经过Unity编译之后的游戏工程的文件，这些都是用户文件，不包含可以让程序成功运行的dll，所以当在Unity没有更新的时候，每次重新从Unity中生成UWP项目只会更改这一个文件夹中的内容。 Unprocessed文件夹从字面意义上来看应该是未处理过的一些类库，我也没有找到太多资料，大概理解就是可能包含一些Unity的Unprocessed Plugin，在Unity里也有类似选项。而之前提及的Assembly-UnityScript和Assembly-CSharp两个工程生成的类库也在这里面。 翻开引用选项，可以看见其中有许多和Unity相关的引用，已经包含了脚本以及UnityPlay和用于和Unity和C#交互的类库。这些类库都有特定的位置。 继续用资源管理器打开解决方案的文件夹探索，发现解决方案中包含的内容不止这些。 在解决方案中包含了UnityOverwrite.txt和UnityCommon.props两个Unity的配置文件，其中UnityOverwrite可以看作是像.gitignore一类的文件，控制每次Unity编译写入时候需要更新的文件列表，默认是都不更新的。而UnityCommon.props文件以XML形式保存了一些Unity的配置信息。除了这些，还有Unity、Players和Obj几个文件夹，Unity文件夹可能包含调试工具（只是猜测，不太清楚是干啥的），Players包含了可以让项目运行的类库，看起来有X86，X64和ARM的（所以也是项目中最大的一个文件夹），但实际上现在只用过X86的，另外两个配置还没有用过（如果要生成针对其他平台的代码，需要将解决方案中的引用项都改为相应的dll或者winmd，这也就是为何在后面在生成时都必须要选X86的原因）。而Obj文件夹应该存放生成UWP项目时候的一些中间文件。 进入到工程目录下面，还可以发现更多的类库，也都在项目的引用项中有所体现。 OK，项目整体大概就是如此了，接下来谈谈项目所引用的类库的问题。 浏览项目文件，可以看到类库主要集中在三个地方，解决方案文件夹的Players目录下、工程目录下和工程目录的Unprocessed目录下。而且有许多类库在不同目录中中包含了不同的版本。翻看项目引用类库的情况，可以看出，和开发者代码有关的类库均来自工程目录下，而和Unity引擎有关的类库均来自Players目录下。Unprocessed目录下的类库没有被使用过。所以，基本可以断定Unprocessed目录下的类库都是原始未经过处理的，在使用之后会出现各种问题，比如无法调用Unity引擎或者引擎初始化失败等等（经过我的验证，的确如此）。关于Unity引擎类库的引用位置也就决定了当前的项目只能跑在X86环境上（切换成别的环境的类库暂时还没有尝试过，后面会持续更新）。 这些有关类库的位置对把Unity项目移植到一个新项目中是一个很强的指导（简单说吗，就是他们调用哪个库，我们也用哪个）。</p>
<h2 id="浅探App-xaml"><a href="#浅探App-xaml" class="headerlink" title="浅探App.xaml"></a>浅探App.xaml</h2><p>进入App.xaml.cs，可以看见在类中一开始便定义了两个量，AppCallbacks和SplashScreen，其中AppCallbacks是UnityPlayer的一个类，非常重要，是连同Unity和UWP的通道；而SplashScreen是启动屏幕的类，主要用于Unity获取窗体位置和大小，以便在正确未知绘图。 进一步观察，在几个On方法中，几乎都调用了InitializeUnity的方法，并且把一些参数以字符串的形式传了进去，具体含义可以参考<a href="https://msdn.microsoft.com/zh-cn/library/windows/apps/mt243287.aspx" target="_blank" rel="noopener">应用生命周期-MSDN</a>。 在cs文件末尾，就是InitializeUnity方法的实现了，首先设置了一些窗体的属性，接着调用了一个非常重要的方法——appCallbacks.SetAppArguments()，最后创建了rootFrame并导航进去，激活窗口，并且防止appcallbacks类被重复初始化。 所以可以判断AppCallbacks方法在应用程序生命周期内只能被初始化一次，想要在别的地方调用它的方法需要将其作为一个静态属性或者利用get/set访问器将其静态化。 接下来，来说说这个SetAppArguments()方法，它的作用是将程序初始化的一些信息传到Unity中，为什么在几个On方法中调用呢，是因为可以让Unity游戏知道现在处于那个生命周期中，以便选择游戏的启动点。但是我们这次的游戏没有这么复杂的根据生命周期启动点设置，所以完全可以利用这个方法给Unity内部通信，选择要启动的Unity中的游戏（我们将好几个游戏都合并在Unity中了）。在Unity内部，可以在启动时候使用Unity的API：UnityEngine.WSA.Application.arguments对传入的字符串进行获取。 Unity的官方文档，写的不是很详细，把cs中的源码直接放上去了，解释也不怎么清楚，不过可以参考：<a href="http://docs.unity3d.com/Manual/windowsstore-appcallbacks.html" target="_blank" rel="noopener">AppCallbacks class</a></p>
<h2 id="再探MainPage-xaml"><a href="#再探MainPage-xaml" class="headerlink" title="再探MainPage.xaml"></a>再探MainPage.xaml</h2><p>MainPage.xaml中主要容器是DXSwapChainPanel，它是事先DirectX和Xaml交互的控件，具体可以参考<a href="https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.ui.xaml.controls.swapchainbackgroundpanel" target="_blank" rel="noopener">https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.ui.xaml.controls.swapchainbackgroundpanel</a>。 在其代码隐藏文件中，WinRTBridge也是Unity写的通WindowsRT交互的一个中间程序，但是源码不可知。appCallbacks类又发挥了强烈作用，进行了游戏的初始化。</p>
<h2 id="开始合并"><a href="#开始合并" class="headerlink" title="开始合并"></a>开始合并</h2><p>合并的思路有两个，一个是把UWP程序的代码拷贝到Unity生成的工程（非决绝方案的另一工程）中（需要考虑namespace的问 题），另一个是将Unity生成的工程拷贝到原来的UWP项目中（也非解决方案的另一个工程）中（主要需要考虑引用的问题）。 采用第一种思路非常简单，只需要在App.xaml.cs中将导航到的页面更换，接着让其他的页面导航到MainPage.xaml（也可以换一个其他的名字）即可。 第二种思路比较麻烦，需要把Unity生成工程中需要的类库都搬移到另一个工程中，然后在项目引用中添加进去，注意pdb同名文件的配套。在App.xaml中只要将SplashScreen和AppCallbacks创建，并且给AppCallbacks创建一个访问器即可在其他程序中调用它的SetAppArguments方法，将所需要的参数传入，然后Navigate到Unity的MainPage中即可。 注：访问器可以很简单的实现</p>
<p>namespace StarrySky<br>{<br>    sealed partial class App : Application<br>    {<br>        private AppCallbacks appCallbacks;<br>        public SplashScreen splashScreen;</p>
<pre><code>    static public AppCallbacks AppCallBacks
    {
        private set;
        get;
    }

public App()
{
    this.InitializeComponent();
    appCallbacks = new AppCallbacks();
            AppCallBacks = appCallbacks;
}
</code></pre><p>大概这样子就可以了。 最后，想说一下，Unity的很多资料在百度上很难找到，推荐从Google上进行搜索，StackOverflow上资料也不是很多，遇到问题还是得看自己来解决，在UWP上的开发和Windows8的开发有共通之处，许多资料也都可以参考。 参考资料：<a href="http://www.davebost.com/2013/08/30/creating-a-unity-game-for-windows-8" target="_blank" rel="noopener">http://www.davebost.com/2013/08/30/creating-a-unity-game-for-windows-8</a></p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/03/09/e6-90-ad-e5-bb-baapachewsgipython-e7-9a-84-e7-8e-af-e5-a2-83/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/03/09/e6-90-ad-e5-bb-baapachewsgipython-e7-9a-84-e7-8e-af-e5-a2-83/" itemprop="url">
                  搭建Apache+Wsgi+Flask的环境
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-03-09 00:59:40" itemprop="dateCreated datePublished" datetime="2016-03-09T00:59:40+08:00">2016-03-09</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/Linux/" itemprop="url" rel="index"><span itemprop="name">Linux</span></a></span>

                
                
                  , 
                
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/Linux/Python/" itemprop="url" rel="index"><span itemprop="name">Python</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>突然想去学习一个Python的Web框架，当然第一步是先配置一下可以运行Python代码的环境。 从搜索引擎转了一圈，选择从熟悉的地方入手——Apache+Wsgi+Python成为了我的选择，而框架暂选Flask，而配置居然花了一个晚上的时间（而且还有许多问题没有解决）。 以下都是在CentOS下的操作，也默认在Python2.7.5下操作</p>
<h2 id="安装Virtualenv"><a href="#安装Virtualenv" class="headerlink" title="安装Virtualenv"></a>安装Virtualenv</h2><p>首先，参考文档：<a href="http://dormousehole.readthedocs.org/en/latest/installation.html" target="_blank" rel="noopener">http://dormousehole.readthedocs.org/en/latest/installation.html</a> 安装Virtualenv，安装Flask，一切正常 注意，建立的目录最好在之前网站的目录之下，比如/var/www/html/pythonTest这样</p>
<h2 id="安装WSGI"><a href="#安装WSGI" class="headerlink" title="安装WSGI"></a>安装WSGI</h2><p>然后安装Wsgi，没想到直接用yum安装就可以</p>
<p>yum install mod_wsgi</p>
<p>如果没有的话，可以i从github下载swgi：<a href="https://github.com/GrahamDumpleton/mod_wsgi/releases" target="_blank" rel="noopener">https://github.com/GrahamDumpleton/mod_wsgi/releases</a> 然后编译安装：</p>
<p>./configure –with-python=/usr/local/bin/python2.7<br>make<br>make install</p>
<p>（参考了<a href="http://www.cnblogs.com/shadowturtle/archive/2012/11/25/2787690.html" target="_blank" rel="noopener">http://www.cnblogs.com/shadowturtle/archive/2012/11/25/2787690.html</a>）</p>
<h2 id="配置Apache"><a href="#配置Apache" class="headerlink" title="配置Apache"></a>配置Apache</h2><p>查看Apache的moudle目录（一般在/etc/httpd/moudles下），发现其中多了一个mod_wsgi.so模块，说明安装成功。 然后打开apache的配置文件，一般在/etc/httpd/conf/conf.d目录下，编辑加入以下代码（没有用虚拟主机）</p>
<p>#Rules for WSGI<br>WSGIScriptAlias /py /var/www/html/py/py.wsgi/</p>
<p>#脚本的路径<br>WSGIScriptReloading On</p>
<p>#允许脚本改动之后自动重载<br>AddType text/html .py </p>
<p>#应该是说在返回Py脚本的时候返回html标记</p>
<directory "="" var="" www="" html="" py=""><br>    AllowOverride None<br>    Require all granted<br></directory>

<p>Apache还可以配置成虚拟主机，这里采用8080端口调试（需要在防火墙打开8080端口）</p>
<p>Listen 8080</p>
<virtualhost *:8080=""><br>    ServerAdmin webmaster@localhost<br>    DocumentRoot /var/www/html/py<br>    WSGIScriptAlias / /var/www/html/py/py.wsgi<br>    WSGIScriptReloading On<br>    <directory "="" var="" www="" html="" py"=""><br>    <files py.wsgi=""><br>        Order deny,allow<br>        Allow from all<br>    </files><br>    </directory><br>    ErrorLog /var/www/html/py/error.log<br>    LogLevel warn<br></virtualhost>



<h2 id="配置WSGI"><a href="#配置WSGI" class="headerlink" title="配置WSGI"></a>配置WSGI</h2><p>我的目录结构是这样的</p>
<p>|—py<br>    |—py.wsgi<br>    |—py<br>        |—__init__.py<br>        |—static<br>            |—-.(静态文件目录)<br>        |—templates<br>            |—.(模板目录)<br>        |—venv<br>            |—(虚拟环境文件)</p>
<p>其实现在有用的也只有py.wsgi，编辑之</p>
<p>import sys<br>def application(environ,start_response):<br>        start_response(‘200 OK’,[(‘Content-Type’,’text/html’)])<br>        return “</p><h1>Hello Wsgi,Hello Flask</h1>“+sys.version<p></p>
<p>会输出Hello Wsgi,Hello Flask和Python的版本号 这时，WSGI配置完成，可以从外部通过Apache访问Python搭建的网站</p>
<h2 id="问题"><a href="#问题" class="headerlink" title="问题"></a>问题</h2><p>不过，也出现了一些问题，就是如何让WSGI使用Python3来解析之后的文件。 本来以为是Virtualenv的问题，但是关闭之后，问题依旧。所以很可能是使用Yum安装时候导致的问题，这个问题留作以后解决。</p>
<h2 id="Virtualenv的简单使用方法"><a href="#Virtualenv的简单使用方法" class="headerlink" title="Virtualenv的简单使用方法"></a>Virtualenv的简单使用方法</h2><h3 id="新建环境"><a href="#新建环境" class="headerlink" title="新建环境"></a>新建环境</h3><p>cd xxx目录<br>virtualenv test_env</p>
<p>默认情况下，虚拟环境会依赖系统环境中的site packages，就是说系统中已经安装好的第三方package也会安装在虚拟环境中，如果不想依赖这些package，那么可以加上参数 –no-site-packages。</p>
<h3 id="启动环境"><a href="#启动环境" class="headerlink" title="启动环境"></a>启动环境</h3><p>source ./bin/activate</p>
<h3 id="退出环境"><a href="#退出环境" class="headerlink" title="退出环境"></a>退出环境</h3><p>deactivate</p>
<hr>
<p>  次日更新</p>
<h2 id="问题解决"><a href="#问题解决" class="headerlink" title="问题解决"></a>问题解决</h2><p>后来查看Apache的log文件，发现是WSGI一直无法import其他文件，看来真的是因为我用Yum安装的WSGI有问题，解决方法如下： 用Python2的pip安装WSGI</p>
<p>python2 pip install mod_wsgi</p>
<p>然后进入WSGI的目录</p>
<p>cd /usr/lib64/python2.7/site-packages/mod_wsgi</p>
<p>进入server文件夹，将mod_wsgi-py27.so复制到Apache的modules文件夹，替换原有的WSGI</p>
<p>cp mod_wsgi-py27.so /etc/httpd/modules/mod_wsgi.so</p>
<p>操作成功。</p>
<h2 id="接入Flask框架"><a href="#接入Flask框架" class="headerlink" title="接入Flask框架"></a>接入Flask框架</h2><p>还是按照配置WSGI时候的目录结构 在py目录下的__init__.py中写入一个简单的测试网页</p>
<p>from flask import Flask<br>app = Flask(__name__)<br>@app.route(“/“)<br>def hello():<br>    return “Hello,Flask!”<br>if __name__ == “__main__“:<br>    app.run()</p>
<p>将py.wsgi文件内容改为</p>
<p>import sys<br>import os<br>sys.path.insert(0,”你的py.wsgi目录”)<br>sys.path.insert(0,”你的__init__.py目录”)<br>from py import app as application（一定要有as application）</p>
<p>然后去访问服务器，发现显示了”Hello，Flask”，大功告成！</p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/03/06/uwp-e5-ad-a6-e4-b9-a0-e6-9c-ad-e8-ae-b0-e5-9c-a8-e5-ba-94-e7-94-a8-e4-b8-ad-e4-bd-bf-e7-94-a8windows10-e9-a3-8e-e6-a0-bc-e5-9b-be-e6-a0-87/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/03/06/uwp-e5-ad-a6-e4-b9-a0-e6-9c-ad-e8-ae-b0-e5-9c-a8-e5-ba-94-e7-94-a8-e4-b8-ad-e4-bd-bf-e7-94-a8windows10-e9-a3-8e-e6-a0-bc-e5-9b-be-e6-a0-87/" itemprop="url">
                  UWP学习札记——在应用中使用Windows10风格图标
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-03-06 19:53:32" itemprop="dateCreated datePublished" datetime="2016-03-06T19:53:32+08:00">2016-03-06</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/UWP/" itemprop="url" rel="index"><span itemprop="name">UWP</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>在Windows中，微软引入了许多全新的设计模式，比如——（饱受争议的）汉堡包图标。 汉堡包图标在上一节已经介绍过了，这一节呢，就来说一说和它一起的其他图标的使用方法。 其是，在Windows 10中已经内置了Segoe MDL2 Assets字体，利用这一字体，可以简单做出很多Windows10风格的图标，而且这些都是矢量图，完全不用害怕失真~ 简单来举个例子：</p>
<h2 id="XAML"><a href="#XAML" class="headerlink" title="XAML"></a>XAML</h2><button name="Add" fontfamily="Segoe MDL2 Assets" content="&#xE710;">

<p>其中，FontFamily指向Segoe MDL2 Assets字体，Content（有的元素为Text属性）设置为图标的代号即可。设置图标大小有两种方法，一种是像文字一样设置FontSize，另一种可以像图片一样设置Width和Height。</p>
<h2 id="C"><a href="#C" class="headerlink" title="C#"></a>C#</h2><p>Button btn = new Button();<br>Windows.UI.Xaml.Media.FontFamily font = new Windows.UI.Xaml.Media.FontFamily(“Segoe MDL2 Assets”);<br>btn.FontFamily = font;<br>btn.Content=”\xE710”;</p>
<p>原理差不多，只是Content里面转义用“\“，而不是用”&amp;#;”，而字体需要新建一个字体的类，它在Windows.UI.Xaml.Media命名空间里面。</p>
<h2 id="图标资源"><a href="#图标资源" class="headerlink" title="图标资源"></a>图标资源</h2><p>这个网站可以找到Segoe MDL2 Assets字体中全部的图标：<a href="http://modernicons.io/segoe-mdl2/cheatsheet/" target="_blank" rel="noopener">http://modernicons.io/segoe-mdl2/cheatsheet/</a> 微软官方指南：<a href="https://msdn.microsoft.com/zh-cn/library/windows/apps/jj841126.aspx" target="_blank" rel="noopener">https://msdn.microsoft.com/zh-cn/library/windows/apps/jj841126.aspx</a></p>
</button>
          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/03/05/uwp-e5-bc-80-e5-8f-91-e6-9c-ad-e8-ae-b0-e5-88-b6-e4-bd-9c-e4-b8-80-e4-b8-aa-e7-ae-80-e5-8d-95-e7-9a-84-e6-b1-89-e5-a0-a1-e5-8c-85-e8-8f-9c-e5-8d-95/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/03/05/uwp-e5-bc-80-e5-8f-91-e6-9c-ad-e8-ae-b0-e5-88-b6-e4-bd-9c-e4-b8-80-e4-b8-aa-e7-ae-80-e5-8d-95-e7-9a-84-e6-b1-89-e5-a0-a1-e5-8c-85-e8-8f-9c-e5-8d-95/" itemprop="url">
                  UWP学习札记--制作一个简单的汉堡包菜单
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-03-05 11:54:43" itemprop="dateCreated datePublished" datetime="2016-03-05T11:54:43+08:00">2016-03-05</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/UWP/" itemprop="url" rel="index"><span itemprop="name">UWP</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>在UWP新的设计规范中，汉堡包菜单变成了官方推荐的导航方式，但是并没有提供相应的控件，需要使用SplitView来模拟。 SplitView是分屏视图，把一个视图分割为两部分，Content属性所表示的为主要视图，而Pane属性设置的视图则可以隐藏，可以折叠和展开。</p>
<h2 id="添加SplitView，并加入一些内容"><a href="#添加SplitView，并加入一些内容" class="headerlink" title="添加SplitView，并加入一些内容"></a>添加SplitView，并加入一些内容</h2><splitview><br>    &lt;SplitView.Pane&gt;<br>        <stackpanel><br>            <textblock fontsize="20">first</textblock><br>            <textblock fontsize="20">second</textblock><br>            <textblock fontsize="20">third</textblock><br>        </stackpanel><br>    &lt;/SplitView.Pane&gt;<br></splitview>

<h2 id="设置SplitView属性"><a href="#设置SplitView属性" class="headerlink" title="设置SplitView属性"></a>设置SplitView属性</h2><p>设置名字，显示模式，调整打开时的宽度和关闭时的宽度，设置默认不打开</p>
<splitview x:name="mySplit" displaymode="CompactOverlay" compactpanelength="0" openpanelength="150" ispaneopen="False">

<p>具体关于SplitView的见解，可以参照：<a href="http://www.cnblogs.com/tcjiaan/p/4435577.html" target="_blank" rel="noopener">【Win 10应用开发】SplitView控件</a></p>
<h2 id="添加汉堡包按钮极其属性"><a href="#添加汉堡包按钮极其属性" class="headerlink" title="添加汉堡包按钮极其属性"></a>添加汉堡包按钮极其属性</h2><p>需要添加两个按钮，一个位于SplitView之外，用于开启SplitView，另一个在SplitView之内，用于关闭SplitView 需要注意，汉堡包的图案其实是一个矢量字符，在一种Segoe字体中，操作方式很简单，将字体设置为”Segoe MDL2 Assets” 即可，其中汉堡图标为&#xE700;，更多图标可以参考：<a href="http://modernicons.io/segoe-mdl2/cheatsheet/" target="_blank" rel="noopener">http://modernicons.io/segoe-mdl2/cheatsheet/</a></p>
<p>//开启按钮</p>
<p><button click="Button_Click" fontfamily="Segoe MDL2 Assets" content="&#xE700;" verticalalignment="Top" width="50" height="50" background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><br>//关闭按钮</button></p>
<button click="Button_Click" fontfamily="Segoe MDL2 Assets" content="&#xE700;" verticalalignment="Top" width="50" height="50">

<p>两个按钮的Click事件绑定同样的操作Button_Click，作用是打开或关闭SplitView</p>
<p>private void Button_Click(object sender, RoutedEventArgs e)<br>{<br>    mySplit.IsPaneOpen = !mySplit.IsPaneOpen;<br>}</p>
<h2 id="最后做一些外观的微调，改变颜色"><a href="#最后做一些外观的微调，改变颜色" class="headerlink" title="最后做一些外观的微调，改变颜色"></a>最后做一些外观的微调，改变颜色</h2><p>这里附上全部XAML代码</p>
<page x:class="BirthClock.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:BirthClock" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:ignorable="d"><br><br>    <grid background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><br>        <button click="Button_Click" fontfamily="Segoe MDL2 Assets" content="&#xE700;" verticalalignment="Top" width="50" height="50" background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><br>        <splitview x:name="mySplit" displaymode="CompactOverlay" compactpanelength="0" openpanelength="150" ispaneopen="False"><br>            &lt;SplitView.Pane&gt;<br>                <stackpanel background="#FF9F9F9F"><br>                    <button background="#FF9F9F9F" fontfamily="Segoe MDL2 Assets" content="&#xE700;" verticalalignment="Top" width="50" height="50" click="Button_Click"><br>                    <textblock fontsize="20">first</textblock><br>                    <textblock fontsize="20">second</textblock><br>                    <textblock fontsize="20">third</textblock><br>                </button></stackpanel><br>            &lt;/SplitView.Pane&gt;<br>            <textblock horizontalalignment="Center" verticalalignment="Center" fontsize="100">Hello!</textblock><br>        </splitview><br>    </button></grid><br></page>

<p>关于汉堡包菜单更具体的描述可以参考：<a href="http://blog.jerrynixon.com/2015/04/implementing-hamburger-button-with.html" target="_blank" rel="noopener">Implementing an Awesome Hamburger Button with XAML’s new SplitView control in Windows 10</a></p>
</button></splitview>
          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://blog.zhengzi.me/2016/03/02/e5-8c-97-e9-82-ae-e4-ba-ba-e8-ae-ba-e5-9d-9b-e6-af-8f-e6-97-a5-e5-8d-81-e5-a4-a7-e6-a3-80-e7-b4-a2/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jason Bian">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/avatar.jpg">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="政子的博客">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/2016/03/02/e5-8c-97-e9-82-ae-e4-ba-ba-e8-ae-ba-e5-9d-9b-e6-af-8f-e6-97-a5-e5-8d-81-e5-a4-a7-e6-a3-80-e7-b4-a2/" itemprop="url">
                  北邮人论坛每日十大检索
                </a>
              
            
          </h1>
        

        <div class="post-meta">
          <span class="post-time">

            
            
            

            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              

              
                
              

              <time title="Created: 2016-03-02 11:47:21" itemprop="dateCreated datePublished" datetime="2016-03-02T11:47:21+08:00">2016-03-02</time>
            

            
              

              
                
                <span class="post-meta-divider">|</span>
                

                <span class="post-meta-item-icon">
                  <i class="fa fa-calendar-check-o"></i>
                </span>
                
                  <span class="post-meta-item-text">Edited on</span>
                
                <time title="Modified: 2018-08-21 17:49:42" itemprop="dateModified" datetime="2018-08-21T17:49:42+08:00">2018-08-21</time>
              
            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">In</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/Python/" itemprop="url" rel="index"><span itemprop="name">Python</span></a></span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>假期的刚好有空，就想去写一个爬虫练手，于是用了四五天的时间来完成了这一个小项目的搭建。 项目地址为：<a href="http://bbss.zhengzi.me" target="_blank" rel="noopener">http://bbss.zhengzi.me</a> 具体一些呢，就是后台采用了Python对北邮人论坛的十大进行抓取，交给数据库，然后用前端展示出来。 后台会在每天中午和凌晨抓取两次论坛的数据，前端这里可以查询到最新的论坛十大数据 具体的之后再行补充，如果有问题或者更好的建议可以直接在下方留言。  </p>
<hr>
<p>更新： 在评论区也找到了一个和我做的事情差不多的小伙伴，做的也很赞，在这里推荐一下 <a href="https://mathpretty.com/9164.html" target="_blank" rel="noopener">https://mathpretty.com/9164.html</a></p>

          
        
      
    </div>

    

    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
  </section>

  
  <nav class="pagination">
    <a class="extend prev" rel="prev" href="/page/5/"><i class="fa fa-angle-left" aria-label="Previous page"></i></a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/5/">5</a><span class="page-number current">6</span><a class="page-number" href="/page/7/">7</a><span class="space">&hellip;</span><a class="page-number" href="/page/9/">9</a><a class="extend next" rel="next" href="/page/7/"><i class="fa fa-angle-right" aria-label="Next page"></i></a>
  </nav>



          </div>
          

        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    
    <div class="sidebar-inner">

      

      

      <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
        <div class="site-overview">
          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
            
              <img class="site-author-image" itemprop="image"
                src="/images/avatar.jpg"
                alt="Jason Bian" />
            
              <p class="site-author-name" itemprop="name">Jason Bian</p>
              <p class="site-description motion-element" itemprop="description"></p>
          </div>

          
            <nav class="site-state motion-element">
              
                <div class="site-state-item site-state-posts">
                
                  <a href="/archives/">
                
                    <span class="site-state-item-count">86</span>
                    <span class="site-state-item-name">posts</span>
                  </a>
                </div>
              

              
                
                
                <div class="site-state-item site-state-categories">
                  
                    
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                    <span class="site-state-item-count">41</span>
                    <span class="site-state-item-name">categories</span>
                  
                </div>
              

              
                
                
                <div class="site-state-item site-state-tags">
                  
                    
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                      
                    
                    <span class="site-state-item-count">109</span>
                    <span class="site-state-item-name">tags</span>
                  
                </div>
              
            </nav>
          

          

          

          
          

          
          

          
            
          
          

        </div>
      </section>

      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright">&copy; <span itemprop="copyrightYear">2018</span>
  <span class="with-love" id="animate">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Jason Bian</span>

  

  
</div>




  <div class="powered-by">Powered by <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a></div>



  <span class="post-meta-divider">|</span>



  <div class="theme-info">Theme – <a class="theme-link" target="_blank" href="https://theme-next.org">NexT.Gemini</a></div>




        








        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

    
	
    

    
  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>


























  
  
    <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
  

  
  
    <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
  


  


  <script type="text/javascript" src="/js/src/utils.js?v=6.4.0"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=6.4.0"></script>



  
  


  <script type="text/javascript" src="/js/src/affix.js?v=6.4.0"></script>

  <script type="text/javascript" src="/js/src/schemes/pisces.js?v=6.4.0"></script>



  

  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=6.4.0"></script>



  



  










  





  

  

  

  

  
  

  

  

  

  

  

</body>
</html>
